perm filename IIDRV.WRU[SYS,HE]2 blob
sn#019453 filedate 1973-01-09 generic text, type T, neo UTF8
00100 IIDRV.DMP
00200
00300 This program allows a user to execute the hand/eye utility
00400 routines (described in HEUTIL.WRU[SYS,HE]) from the console for
00500 debugging the routines, the other jobs, or strategies.
00600
00700 SYNTAX
00800
00900 <proc_name> ::= GETEDGE | CURVE | SIMPL | COMP | REJ_OBJ
01000 ::= JOB_START | INNER | COLGET | DISP_OBJ | CAMCHG
01100 ::= VERIF | DISP_DEL | TAB_SET | MOVE_OBJ
01200
01300 <special_id> ::= U_BLOB | U_OBJ | U_LINK | ALL | STATUS
01400
01500 ::= CAMERA
01600 <digit> ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0
01700
01800 <letter> ::= A | B | ... | Z | a | ... | z | _
01900
02000 <integer> ::= <digit> | <integer><digit>
02100
02200 <s_int> ::= <integer> | <s_int>
02300
02400 <real> ::= <s_int>.<integer> | .<integer> | <s_int>.
02500
02600 <string> ::= " any characters except double quote "
02700
02800 <identifier> ::= <letter> | <digit><identifier>
02900 ::= <identifier><digit> | <identifier><letter>
03000
03100 everything is valid except <special_id> or <proc_name>
03200
03300 <item> ::= <integer> | <identifier>
03400
03500 the integer must be a valid decimal item number and
03600 the identifier must be a valid print name
03700
03800 <item_list> ::= <item> | <item_list><item>
03900
04000 <set> ::= {<item_list>}
04100
04200 <simple_id> ::= <s_int> | <string> | <identifier> | <set> | <real>
04300
04400 <argument_list> ::= <simple_id> | <argument_list>,<simple_id>
04500
04600 <proc_id> ::= <proc_name> | <proc_name>(<argument_list)
04700
04800 the first is only valid for procedures of no args
04900
00100 STATEMENTS
00200
00300 The program recognizes four types of statements. Each must
00400 be terminated by a carriage return. After the scanner has parsed a
00500 statement, it ignores any extra characters at the end of the input
00600 string. The null statement will be ignored.
00700
00800 1. execute a special function
00900
01000 <special_id>=
01100
01200 the functions are as follows:
01300
01400 ALL output all identifier names with their current value,
01500 if any
01600 U_BLOB output the set of all known blob items
01700 U_OBJ output the set of all known object item
02000 U_LINK output a list of sets of blobs and the set of objects
02100 linked to each one
02200 STATUS outputs the datum of each blob item in U_BLOB (which
02300 is the blob's status word)
02400 CAMERA outputs the contents of the global camera storage:
02500 CAMFLG, CAMPAN, CAMTIL, CAMRANG, and CAMLENS (see de-
02600 scription of CAMCHG procedure).
02700
02800 2. delete a declared identifier
02900
03000 <identifier>↓
03100
03200 If the identifier is recognized it will be deleted. This
03300 recovers space in the program's tables.
03400
03500 3. evaluate
03600
03700 <simple_id> | <proc_id>
03800
03900 The value of the statement is determined and typed out. If
04000 you typed a set, string, real, or integer, it will be echoed. A
04100 recognized identifier will have its current value typed. A procedure
04200 will be executed and its value, if any, typed.
04300
04400 4. assign
04500
04600 <identifier>←<simple_id> | <identifier>←<proc_id> | <identifier>←
04700
04800 The construct on the right side of the arrow is evaluated and
04900 the value stored in the identifier on the left. If the identifier
05000 has appeared before in an assignment statement, the old value will be
05100 lost. The data type associated with the value, not the identifier,
05200 which may be integer, string, set, real, or empty. If the right side
05300 of the arrow is empty, the identifier will be defined, if necessary,
05400 but will have no value.
05500
05600
05700
05800 PROCEDURES
05900
06000 When a procedure is specified, the arguments given are
06100 evaluated and the data type of their value must match the
06200 declaration. The only exception is if the formal parameter is called
06300 by reference. Then, the matching argument must be a known identifier
06400 but its value (of any type) is set to empty before the call.
06500
06600
06700
06800 ERROR MESSAGES (An error prevents execution of the statement. Except
06900 for the first, each message is followed by a line feed and
07000 the part of the input string no yet scanned, if any)
07100
07200 *** NO VALUE *** This is not usually an error. The program was
07300 expected to type a value and the statement or
07400 identifier did not have one.
07500 foo NOT AN ITEM foo was encountered in a set being typed in
07600 and is not a legal item or print name
07700 NULL TERM ILLEGAL IN SET Things like {A,} and {A,,B} are not allowed.
07800 {}, the null set, is legal however
07900 foo NOT RECOGNIZED OR an identifier, foo, was either not recognized
08000 ILLEGAL and not on the left side of an assignment, or
08100 was the wrong type (you used a <special_id>
08200 where a <identifier> was required, etc.)
08300 CONSTANT FOR CALL BY A reference argument must be an identifier.
08400 REFERENCE
08500 STRING DID NOT END Second " not found in statement
08600 SET DID NOT END } not found in statement
08700 UNKNOWN DELIMITER - d d is not recognized, either at all or in the
08800 context where used
08900 ARGUMENT MISMATCH The argument type doesn't match declaration
09000 <ARGS not enough arguments provided
09100 >ARGS too many arguments provided, or ) is missing
00100 RUNNING THE PROGRAM
00200
00300 The easiest way to run the program is to execute DO
00400 RUNII[SYS,HE]. This DO file will load the monitor, link to a saved
00500 segment (GLBNEW[SYS,HE]), read in the macro fill HEMACRO[SYS,HE], and
00600 execute the macro which logs in and starts IIDRV, with tracing and
00700 typing on. IIDRV's logical name to the monitor is DRV. The macros
00800 executed by JOB_START will always reset the default logical name to
00900 DRV.
01000
01100
01200
01300 WARNING ON DELETION OF ITEMS
01400
01500 When REJ_OBJ deletes items, they are removed from all sets in
01600 the utility routines but not from IIDRV. The set passed as an
01700 argument to REJ_OBJ will be cleared, but other sets you have stored
01800 may contain deleted items.
01900
02000 SPECIAL PROCEDURES
02100
02200 PROCEDURE MOVE_OBJ(SET OBJ; INTEGER DX, DY, DTHETA);
02300
02400 uses NEW_SIMP in the utility routines to change the world
02500 model as if the objects in OBJ had been moved an incremental distance
02600 DX,DY in inches from their current position and rotated by DTHETA in
02700 degrees.